在物件導向的程式世界中,物件會有所謂 相依性
的問題,什麼是相依性呢?我們舉現實生活中的車子來理解這個抽象概念。車子是一種交通工具對吧?在 Ruby
中車子將可能會是車子這個類別中的一個實體物件,它的行為是進行移動。那車子為什麼可以移動的呢?車子是需要靠輪子來移動的,我們也可以說車子依賴輪子來進行移動,沒有輪子的車子可能哪也去不了,所以車子對輪子產生了很高的相依性。
在物件導向的世界中,我們對程式類別和物件相互依賴的程度高低稱為耦合性。
耦合性(英語:Coupling,dependency,或稱耦合力或耦合度)是一種軟體度量,是指一程式中,模組及模組之間資訊或參數依賴的程度。(from Wiki)
耦合性愈高的程式理論上來講會愈難維護,這點可以想像我們先前舉例的車子。假設有一款特殊類別的車子,輪子的構造和一般輪子的構造不一樣,是所謂一體成型的構造。也就是說它的輪子不容易替換,那這輛特殊的車子對於這種特別設計的輪子就會有較高的依賴性。就算真的壞了也沒辦法像其他一般車子一樣快速找到同規格的零件進行替換,當我們這樣設計一台車子的時候就像在設計程式中的類別與方法。我們有沒有遵循物件導向的思維去設計程式,在未來專案的開發與維護時就會產生成本上顯著的差異。
在下一篇文章中,我們將透過程式碼的範例介紹 Ruby
程式語言特性所衍生出來降低程式碼之間的耦合度與管理相依性的技巧。準備好開始看 code
了嗎?別害怕,你終究會習慣它的~